<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Usuario_model extends CI_Model {
  function __construct(){
  	parent::__construct();
  	$this->load->database();
  }
  
/*
 * ---------------------------------------------------------------------
 * FUNCION PARA ALMACENAR O ACTUALIZAR UN USUARIO
 * ---------------------------------------------------------------------
 * ENTRADA
 * 		$data:
 * 		$upload:	
 * 			
 * SALIDA
 * 		$valor:
 * 				   
*/
  public function actualizarGuardarUsuario ($data, $upload){
  	$valor=0;
  	
  	$query = $this->db->get_where('usuario', array('nombre' => $data['usuario']));
  	//SI el usuario existe se actualiza
  	if ($query->num_rows() > 0){
  		$row = $query->row();
  		$array_actualizar['estatus'] = "Activo";
  		if ($data['newpassword'] != "")
  	 		$array_actualizar['password'] = $data['newpassword'];
  	 	//SI el usuario cambio la imagen se agrega al arreglo para ser actualizada
  	 	if ($data['imagen'] != null){
  	 		$array_actualizar['imgchar1'] = $data['imagen']; //Nombre de la imagen
  	 		if (strlen($data['extension']) > 3){
	  			$array_actualizar['imgblob1'] = base64_decode (substr($upload, 23 , strlen($upload) + 1));
	  		}else{
	  			$array_actualizar['imgblob1'] = base64_decode (substr($upload, 22 , strlen($upload) + 1));	
	  		}
  	 	}
  	 	$this->db->where('nombre', $data['usuario']);
		$this->db->update('usuario', $array_actualizar); 
		$valor=1;
  	 	return $valor; 	
  	}
  	//SI el usuario NO existe se agrega a la Base de Datos
  	else{
  		$blob=null;
  		if ($data['imagen'] != null){
	  		if (strlen($data['extension']) > 3){
	  			$blob = base64_decode (substr($upload, 23 , strlen($upload) + 1));
	  		}else{
	  			$blob = base64_decode (substr($upload, 22 , strlen($upload) + 1));	
	  		}
  		}
  		$this->db->insert('usuario',array('nombre'			  =>$data['usuario'],
     								      'password'		  =>$data['password'],
     									  'estatus'		  	  =>"Activo",
     									  'imgblob1'		  =>$blob,
     									  'imgchar1'		  =>$data['imagen'],
     									  'rol_id'		  	  =>4,
  										  'fecha_registro'    =>date("Y-m-d"),
  										  'fecha_ult_visita'  =>date("Y-m-d H:i:s")));
  	 	$valor=2;
  	 	return $valor;
  	}
  }
  
  
/*
 * ---------------------------------------------------------------------
 * FUNCION PARA BUSCAR UN USUARIO
 * ---------------------------------------------------------------------
 * ENTRADA
 * 		$name_user:	
 * 			
 * SALIDA
 * 		$boolean:
 * 				   
*/
  public function buscarUsuario($name_user){
  	$query = $this->db->get_where('usuario', array('nombre' => $name_user));
  	if ($query->num_rows() > 0)
  		return true;
  	else
  		return false;
  }
  
  
/*
 * ---------------------------------------------------------------------
 * FUNCION PARA VALIDAR UN USUARIO
 * ---------------------------------------------------------------------
 * ENTRADA
 * 		$datos_acceso:	
 * 			
 * SALIDA
 * 		$query:
 * 				   
*/
  public function validarUsuario($datos_acceso){
  	$query = $this->db->query("SELECT r.id AS id_rol, r.nombre AS nombre_rol, u.id AS id_usuario, r.nivel AS nivel_acceso, c.nombre, c.apellido
                               FROM usuario AS u, rol AS r, cliente AS c 
                               WHERE u.nombre = '" . $datos_acceso['usuario'] . "' 
                               AND   u.password = '" . $datos_acceso['password'] . "' 
                               AND   u.rol_id = r.id
                               AND	 c.usuario_id = u.id");
  	return $query;
  }

  
/*
 * ---------------------------------------------------------------------
 * FUNCION PARA OBTENER LOS DATOS DE UN USUARIO
 * ---------------------------------------------------------------------
 * ENTRADA
 * 		$id_usuario: El identificador unico de un registro en la tabla usuario	
 * 			
 * SALIDA
 * 		$query: El resulset con el contenido de la consulta
 * 				   
*/
  public function buscarDatosUsuario($id_usuario){
  		$query = $this->db->get_where('usuario', array('id' => $id_usuario));
  		return $query;
  }
  
  
  
/*
 * ---------------------------------------------------------------------
 * FUNCION PARA VERIFICAR SI LA CONTRASEÑA DE UN USUARIO ES CORRECTA
 * ---------------------------------------------------------------------
 * ENTRADA
 * 		$usuario: 	Nombre de usuario a verificar
 * 		$password: 	Supuesto password del usuario
 * 			
 * SALIDA
 * 		bool: TRUE si el password pertenece al usuario especificado - FALSE si no pertenece.		   
*/
  public function verificarPassword($usuario, $password){
  	$this->db->get('usuario');
  	$query = $this->db->get_where('usuario', array('nombre' => $usuario));
  	if ($query->num_rows() > 0){
  		$row = $query->row();
  		if ($row->password == $password)
  			return true;
  		else
  			return false;
  	}
  	else
  		return false;
  }
  
  
  
/*
 * ---------------------------------------------------------------------
 * FUNCION PARA ACTUALIZAR LA ULTIMA FECHA DE ACCESO DE UN USUARIO
 * ---------------------------------------------------------------------
 * ENTRADA
 * 		$usuario: 	Nombre de usuario a modificar
 * 			
 * SALIDA
 *		empty.		   
*/
  public function actualizarFechaUltVisita($usuario){
  	$data = array(
       'fecha_ult_visita' => date("Y-m-d H:i:s")
    );
    $this->db->where('nombre', $usuario);
	$this->db->update('usuario', $data); 
  	//$this->db->update('usuario', $data, "nombre = ". $usuario);
  }
}
?>